Modern digital networks are made to operate over different transmission media and interconnect upon request a very large number of users (e.g., hosts) in applications through fairly complex digital communication networks.
Do to the large variety of users' profiles and distributed applications, the traffic is becoming more and more bandwidth consuming, non deterministic and requiring more connectivity. This has been the driver for the emergence of fast packet switching techniques in which data from different origins are chopped into fixed or variable length packets or datagrams, and then transferred, over high-speed digital networks, between a data source and target terminal equipment.
Several types of networks have been installed throughout the world, which need to be interconnected for example (e.g., via so-called routers) to optimize the possibilities of organizing traffic between source hosts and target hosts located anywhere in the world. This is made possible by using so-called Internetworking.
Internetwork (also referred to as Internet) facilities use a set of networking protocols such as Transmission Control Protocol/Internet Protocol (TCP/IP) developed to allow cooperating host computers to share resources across the Internetwork. TCP/IP is a set of data communication protocols that are referred to as the Internet protocol (IP) suite. Because TCP and IP are the best known, it has become common to use the term TCP/IP to refer to the whole protocol family. TCP and IP are two of the protocols in this suite. Other protocols of the suite are User Datagram Protocol (UDP), Address Resolution Protocol (ARP), Real Time Protocol (RTP), etc.
An Internet may thus be a collection of heterogeneous and independent networks using TCP/IP, and connected together by routers. The administrative responsibilities for the Internet (e.g., to assign IP addresses and domain names) can be within a single network, for example a Local Area Network (LAN), or distributed among multiple networks.
When the communication of data has to be established from a source host to a particular computer IP destination over an IP network, there are a number of methods to determine the first hop router of the network leading towards this destination. These include running (or snooping) dynamic routing protocol such as Routing Information Protocol (RIP) or Open Shortest Path First (OSPF) version, running an Internet Control Message Protocol (ICMP) router discovery client or using a statically configured default route.
Running a dynamic routing protocol on every end-host may be infeasible for a number of reasons, including administrative overhead, processing overhead, security issues, or lack of a protocol implementation for some platforms. Neighbor or router discovery protocols may require active participation by all hosts on a network, leading to large timer values to reduce protocol overhead in face of a large number of hosts. This can result in significant delay in the detection of a lost (i.e., dead) neighbor, which may introduce unacceptably long “black hole” periods.
The use of a statically configured default route is quite popular, it minimizes configuration and processing overhead on the end-host, and is supported by virtually every IP implementation. This mode of operation is likely to persist as Dynamic Host Configuration Protocols (DHCP) are deployed, which typically provide configuration for an end-host IP address and default gateway. However, this creates a single point of failure. Loss of the default router results in a catastrophic event, isolating all end hosts that are unable to detect any alternate path that may be available.
One solution to solve this problem is to allow hosts to appear to use a single router and to maintain connectivity even if the actual first hop router they are using fails. Multiple routers participate in this protocol and in concert create the illusion of a single virtual router. The protocol insures that one and only one of the routers is forwarding packets on behalf of the virtual router. End hosts forward their packets to the virtual router. The router forwarding packets is known as the active router. A standby router is selected to replace the active router should it fail. The protocol provides a mechanism for determining active and standby routers using the IP addresses on the participating routers. If an active router fails, a standby router can take over without a major interruption in the host's connectivity.
Another similar approach is the use of Virtual Router Redundancy Protocol (VRRP) designed to eliminate the single point of failure inherent in the static default routed environment. VRRP specifies an election protocol that dynamically assigns responsibility for a virtual router to one of the VRRP routers on a LAN. The VRRP router controlling the IP address (es) associated with a virtual router is called the Master and forwards packets sent to these IP addresses. The election process provides dynamic fail-over in the forwarding responsibility should the Master become unavailable. Any of the virtual router's IP addresses on a LAN can then be used as the default first hop router by the end-hosts. The advantage gained by using VRRP is a higher availability default path without requiring configuration of dynamic routing or router discovery protocols on every end-host.
Unfortunately, the two solutions above cannot provide load balancing for a given host's traffic because only the router that answered the ARP is used. Also, customers are reluctant to change their main router configuration to enable such a function. Clearly there is a need for a method of providing load balancing for traffic on the Internet.